///////////////////////////////////////////////////////////
//  BoolData.h
//  Implementation of the Class BoolData
//  Created on:      18-Aug-2013 10:40:54 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_01E5F04D_2F6F_4c33_95A6_D4EA6023A79F__INCLUDED_)
#define EA_01E5F04D_2F6F_4c33_95A6_D4EA6023A79F__INCLUDED_

#include "../Interfaces/IBool.h"

namespace Data
{
class BoolData : public IBool
{

public:
	BoolData(const bool& _value = true);
	BoolData(const BoolData& anotherBool);
	virtual ~BoolData();
	virtual IData::DataType GetDataType() const;
	virtual IObject::ObjectType GetType() const;
	virtual bool GetValue() const;
	virtual void SetValue(const bool& _value);
	virtual IObject* Clone();
	virtual String_t ToString() const;
	virtual String_t ToXML();
  virtual bool operator==(const bool& _anotherValue) const;
  virtual bool operator!=(const bool& _anotherValue) const;

private:
	IObject::ObjectType m_type;
	IData::DataType m_dataType;
	bool m_value;

};
}
#endif // !defined(EA_01E5F04D_2F6F_4c33_95A6_D4EA6023A79F__INCLUDED_)
